home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et3_0-a1.lha / et3 / src / PRINTERS / Pict.C < prev    next >
C/C++ Source or Header  |  1992-06-07  |  1KB  |  68 lines

  1. #include "Printer.h"
  2.  
  3. #include "Class.h"
  4. #include "PictPort.h"
  5. #include "Picture.h"
  6. #include "Data.h"
  7. #include "TypeMatcher.h"
  8. #include "String.h"
  9.  
  10. class PrintPictPort: public PictPort {
  11.     char *name;
  12.     int pn;
  13. public:
  14.     MetaDef(PrintPictPort);
  15.     PrintPictPort(char *name);
  16.     ~PrintPictPort();
  17.     void DevOpenPage(int pn);
  18.     void DevClosePage();
  19. };
  20.  
  21. NewMetaImpl0(PrintPictPort, PictPort);
  22.  
  23. PrintPictPort::PrintPictPort(char *nm) : PictPort((Picture*)0)
  24. {
  25.     name= strsave(nm);
  26. }
  27.  
  28. PrintPictPort::~PrintPictPort()
  29. {
  30.     FlushMyText();
  31.     SafeDelete(name);
  32. }
  33.  
  34. void PrintPictPort::DevOpenPage(int n)
  35. {
  36.     PictPort::DevOpenPage(n);
  37.     pict= new Picture;
  38.     pn= n;
  39. }
  40.  
  41. void PrintPictPort::DevClosePage()
  42. {
  43.     PictPort::DevClosePage();
  44.     if (pict->Length() > 0) {
  45.     OStream os(form("%s.%d", name, pn));
  46.     os << cMagic << " Picture PictPrinter\n" << pict;
  47.     }
  48.     SafeDelete(pict);
  49. }
  50.  
  51. //---- PictPrinter -------------------------------------------------------------
  52.  
  53. class PictPrinter : public Printer {
  54. public:
  55.     MetaDef(PictPrinter);
  56.     PictPrinter()
  57.     { }
  58.     char *GetName()
  59.     { return "PICT"; }
  60.     bool CanSave()
  61.     { return TRUE; }
  62.     PrintPort *MakePrintPort(char *name)
  63.     { return new PrintPictPort(name); }
  64. };
  65.  
  66. NewMetaImpl0(PictPrinter, Printer);
  67.  
  68.